[HVM] Qemu rtl8139: correct ring-buffer wrapping.
authorTim Deegan <Tim.Deegan@xensource.com>
Mon, 16 Jul 2007 13:27:12 +0000 (14:27 +0100)
committerTim Deegan <Tim.Deegan@xensource.com>
Mon, 16 Jul 2007 13:27:12 +0000 (14:27 +0100)
The rx DMA should never overrun when it hits the end of a 64k buffer
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
tools/ioemu/hw/rtl8139.c

index 6883803fe30a9f00bf70159e67276cd1814150e5..df4f3eebdd060e9667461bf6072f71e8b0891a68 100644 (file)
@@ -754,7 +754,7 @@ static void rtl8139_write_buffer(RTL8139State *s, const void *buf, int size)
         int wrapped = MOD2(s->RxBufAddr + size, s->RxBufferSize);
 
         /* write packet data */
-        if (wrapped && s->RxBufferSize < 65536 && !rtl8139_RxWrap(s))
+        if (wrapped && !(s->RxBufferSize < 65536 && rtl8139_RxWrap(s)))
         {
             DEBUG_PRINT((">>> RTL8139: rx packet wrapped in buffer at %d\n", size-wrapped));